package com.mall.huohuo.result;


import com.github.pagehelper.Page;
import com.github.pagehelper.PageInfo;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.beans.BeanUtils;

import java.util.List;

/**
 * @param <T>
 * @author zycoding
 */
@Data
@Accessors(chain = true)
public class PageResult<T> extends Result<List<T>> {

    /**
     * 页码，从1开始
     */
    private int pageNum;
    /**
     * 页面大小
     */
    private int pageSize;
    /**
     * 起始行
     */
    private int startRow;
    /**
     * 末行
     */
    private int endRow;
    /**
     * 总数
     */
    private long total;
    /**
     * 总页数
     */
    private int pages;


    public static <R> PageResult<R> convertPageInfo(PageInfo<R> pageInfo) {
        if (pageInfo.getTotal() == 0) {
            return (PageResult<R>) new PageResult().setSuccess(false);
        }
        final Page<R> page = (Page<R>) pageInfo.getList();
        PageResult<R> pageResult = new PageResult<R>();
        BeanUtils.copyProperties(page, pageResult);
        pageResult.setData(page)
                .setCode(200)
                .setSuccess(true);
        return pageResult;
    }

}
